import configparser
import pymysql


# 创建自己的pymysql类
class pymysql_09():
    # 定义属性
    def __init__(self,ini_path):
        self.ini_path=ini_path
    def get_ini_data(self):
        # 引入data.ini文件中的配置
        cfg = configparser.ConfigParser()  # 创建配置对象
        cfg.read(self.ini_path,encoding='utf8')
        ini_dict_data=dict(cfg.items('mysqldb'))    # 获取mysqldb节下的数据  并转换成字典
        # 修改字典  字典中名[键]=新值
        ini_dict_data['port'] = int(ini_dict_data['port'])
        return ini_dict_data
    def show_data(self,sql):
        # 创建连接对象
        cnn = pymysql.connect(**self.get_ini_data())
        # 上下文管理器
        with cnn:
            with cnn.cursor(cursor=pymysql.cursors.DictCursor) as cur:
                # 其它操作
                # 准备sql语句
                my_sql=sql
                # 执行语句
                try:
                    cur.execute(my_sql)
                except Exception as e:
                    return '请检查sql语句',e
                else:
                    # 查看执行结果
                    data = cur.fetchall()
                    return data
                finally:
                    pass
    def change_data(self,sql):
        # 创建连接对象
        cnn = pymysql.connect(**self.get_ini_data())
        # 上下文管理器
        with cnn:
            with cnn.cursor(cursor=pymysql.cursors.DictCursor) as cur:
                # 其它操作
                # 准备sql语句
                my_sql=sql
                # 执行语句
                try:
                    aff=cur.execute(my_sql)
                except Exception as e:
                    return '请检查sql语句',e
                else:
                    # 判断
                    if aff !=0:
                        return '修改成功'
                    else:
                        return '修改失败'
                finally:
                    pass


